// mock/index.js
import Mock from "mockjs"; // 引入mockjs
// import * as webuserSelect from './modules/webuser-select'
// import './modules/webuser-select'

import * as webuserSelect from './modules/webuser-select'

// tips
// 1. 开启/关闭[业务模块]拦截, 通过调用fnCreate方法[isOpen参数]设置.
// 2. 开启/关闭[业务模块中某个请求]拦截, 通过函数返回对象中的[isOpen属性]设置.
fnCreate(webuserSelect, true)

/**
 * 创建mock模拟数据
 * @param {*} mod 模块
 * @param {*} isOpen 是否开启?
 */
function fnCreate (mod, isOpen = true) {
  if (isOpen) {
    for (var key in mod) {
      ((res) => {
        if (res.isOpen !== false) {
          // console.log(1)
          Mock.mock(new RegExp(res.url), res.type, (opts) => {
            opts['data'] = opts.body ? JSON.parse(opts.body) : null
            delete opts.body
            // console.log('\n')
            // console.log('%cmock拦截, 请求: ', 'color:blue', opts)
            // console.log('%cmock拦截, 响应: ', 'color:blue', res.data)
            return res.data
          })
        }
      })(mod[key]() || {})
    }
  }
}
// export default mockjs

// const Random = Mock.Random; // Mock.Random 是一个工具类，用于生成各种随机数据

let data = []; // 用于接受生成数据的数组
for (let i = 0; i < 10; i++) {
  // 可自定义生成的个数
  let template = Mock.mock({
    name: '@name', // 生成地址,
    string: '@string(2, 10)', // 生成2到10个字符之间的字符串
    date: '@date' // 生成一个随机日期,可加参数定义日期格式
  });
  data.push(template);
  // data.push(Mock.mock({
  //   'id': '@integer(0000000,9999999)',
  //   'selectstate': '@boolean',
  //   'username': '@cname'
  // }));
}
Mock.mock("/data/index", "post", data); // 根据数据模板生成模拟数据